package net.vkits.common.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import net.vkits.anjiamiao.domain.model.AuthenticationStatus;
import net.vkits.anjiamiao.domain.model.ContractStatus;

import java.util.Objects;



/**
 * 用户
 **/

/**
 * 用户
 */
@ApiModel(description = "用户")
@javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringCodegen", date = "2016-10-27T05:49:23.577Z")

public class User   {
  private String name = null;

  private String avatar = null;

  private AuthenticationStatus isCertification = null;

  private Boolean isBlock = null;

  private Boolean isVIP = null;

  private Boolean canTrade = null;

  private Boolean overDayTime = null;

  private Boolean overMonthTime = null;

  private Boolean contractOverTime = null;

  private Integer tradeLimit = null;

  private String idPhoto1 = null;

  private String idPhoto2 = null;

  private String idNumber = null;

  private ContractStatus contractStatus = ContractStatus.Init;

  public User contractOverTime(Boolean contractOverTime) {
    this.contractOverTime = contractOverTime;
    return this;
  }

  /**
   * 合同超过有效期
   * @return contractOverTime
   **/
  @ApiModelProperty(value = "合同超过有效期")
  public Boolean getContractOverTime() {
    return contractOverTime;
  }

  public void setContractOverTime(Boolean contractOverTime) {
    this.contractOverTime = contractOverTime;
  }

  public User canTrade(Boolean canTrade) {
    this.canTrade = canTrade;
    return this;
  }

  /**
   * 是否还有未完成的交易
   * @return canTrade
   **/
  @ApiModelProperty(value = "是否还有未完成的交易")
  public Boolean getCanTrade() {
    return canTrade;
  }

  public void setCanTrade(Boolean canTrade) {
    this.canTrade = canTrade;
  }

  public User tradeLimit(Integer tradeLimit) {
    this.tradeLimit = tradeLimit;
    return this;
  }

  /**
   * 交易最低限额
   * @return name
   **/
  @ApiModelProperty(value = "交易最低限额")
  public Integer getTradeLimit() {
    return tradeLimit;
  }

  public void setTradeLimit(Integer tradeLimit) {
    this.tradeLimit = tradeLimit;
  }

  public User contractStatus(ContractStatus contractStatus) {
    this.contractStatus = contractStatus;
    return this;
  }

  /**
   * 用户合同状态
   * @return status
   **/
  @ApiModelProperty(value = "用户合同状态")
  public ContractStatus getContractStatus() {
    return contractStatus;
  }

  public void setContractStatus(ContractStatus contractStatus) {
    this.contractStatus = contractStatus;
  }

  public User name(String name) {
    this.name = name;
    return this;
  }

   /**
   * 用户真实姓名
   * @return name
  **/
  @ApiModelProperty(value = "用户真实姓名")
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public User avatar(String avatar) {
    this.avatar = avatar;
    return this;
  }

   /**
   * 用户头像URL
   * @return avatar
  **/
  @ApiModelProperty(value = "用户头像URL")
  public String getAvatar() {
    return avatar;
  }

  public void setAvatar(String avatar) {
    this.avatar = avatar;
  }

  public User isCertification(AuthenticationStatus isCertification) {
    this.isCertification = isCertification;
    return this;
  }

   /**
   * 是否已实名认证
   * @return isCertification
  **/
  @ApiModelProperty(value = "是否已实名认证")
  public AuthenticationStatus getIsCertification() {
    return isCertification;
  }

  public void setIsCertification(AuthenticationStatus isCertification) {
    this.isCertification = isCertification;
  }

  public User isBlock(Boolean isBlock) {
    this.isBlock = isBlock;
    return this;
  }

   /**
   * 是否黑名单用户
   * @return isBlock
  **/
  @ApiModelProperty(value = "是否黑名单用户")
  public Boolean getIsBlock() {
    return isBlock;
  }

  public void setIsBlock(Boolean isBlock) {
    this.isBlock = isBlock;
  }

  public User isVIP(Boolean isVIP) {
    this.isVIP = isVIP;
    return this;
  }

  /**
   * 是否VIP用户
   * @return isVIP
   **/
  @ApiModelProperty(value = "是否VIP用户")
  public Boolean getIsVIP() {
    return isVIP;
  }

  public void setIsVIP(Boolean isVIP) {
    this.isVIP = isVIP;
  }

  public User overDayTime(Boolean overDayTime) {
    this.overDayTime = overDayTime;
    return this;
  }

   /**
   * 是否超过日交易次数限制
   * @return overDayTime
  **/
  @ApiModelProperty(value = "是否超过日交易次数限制")
  public Boolean getOverDayTime() {
    return overDayTime;
  }

  public void setOverDayTime(Boolean overDayTime) {
    this.overDayTime = overDayTime;
  }

  public User overMonthTime(Boolean overMonthTime) {
    this.overMonthTime = overMonthTime;
    return this;
  }

   /**
   * 是否超过月交易次数限制
   * @return overMonthTime
  **/
  @ApiModelProperty(value = "是否超过月交易次数限制")
  public Boolean getOverMonthTime() {
    return overMonthTime;
  }

  public void setOverMonthTime(Boolean overMonthTime) {
    this.overMonthTime = overMonthTime;
  }

  public User idPhoto1(String idPhoto1) {
    this.idPhoto1 = idPhoto1;
    return this;
  }

   /**
   * 身份证照片1
   * @return idPhoto1
  **/
  @ApiModelProperty(value = "身份证照片1")
  public String getIdPhoto1() {
    return idPhoto1;
  }

  public void setIdPhoto1(String idPhoto1) {
    this.idPhoto1 = idPhoto1;
  }

  public User idPhoto2(String idPhoto2) {
    this.idPhoto2 = idPhoto2;
    return this;
  }

   /**
   * 身份证照片2
   * @return idPhoto2
  **/
  @ApiModelProperty(value = "身份证照片2")
  public String getIdPhoto2() {
    return idPhoto2;
  }

  public void setIdPhoto2(String idPhoto2) {
    this.idPhoto2 = idPhoto2;
  }

  public User idNumber(String idNumber) {
    this.idNumber = idNumber;
    return this;
  }

   /**
   * 身份证号码
   * @return idNumber
  **/
  @ApiModelProperty(value = "身份证号码")
  public String getIdNumber() {
    return idNumber;
  }

  public void setIdNumber(String idNumber) {
    this.idNumber = idNumber;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    User user = (User) o;
    return Objects.equals(this.name, user.name) &&
        Objects.equals(this.avatar, user.avatar) &&
        Objects.equals(this.isCertification, user.isCertification) &&
        Objects.equals(this.isBlock, user.isBlock) &&
        Objects.equals(this.overDayTime, user.overDayTime) &&
        Objects.equals(this.overMonthTime, user.overMonthTime) &&
        Objects.equals(this.idPhoto1, user.idPhoto1) &&
        Objects.equals(this.idPhoto2, user.idPhoto2) &&
        Objects.equals(this.idNumber, user.idNumber);
  }

  @Override
  public int hashCode() {
    return Objects.hash(name, avatar, isCertification, isBlock, overDayTime, overMonthTime, idPhoto1, idPhoto2, idNumber);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class User {\n");

    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    avatar: ").append(toIndentedString(avatar)).append("\n");
    sb.append("    isCertification: ").append(toIndentedString(isCertification)).append("\n");
    sb.append("    isBlock: ").append(toIndentedString(isBlock)).append("\n");
    sb.append("    overDayTime: ").append(toIndentedString(overDayTime)).append("\n");
    sb.append("    overMonthTime: ").append(toIndentedString(overMonthTime)).append("\n");
    sb.append("    idPhoto1: ").append(toIndentedString(idPhoto1)).append("\n");
    sb.append("    idPhoto2: ").append(toIndentedString(idPhoto2)).append("\n");
    sb.append("    idNumber: ").append(toIndentedString(idNumber)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

